package com.zzyl.service;

import com.zzyl.base.PageResponse;
import com.zzyl.dto.*;
import com.zzyl.entity.Device;
import com.zzyl.vo.DevicePropertyStatusVo;
import com.zzyl.vo.DeviceVo;
import com.zzyl.vo.ProductVo;
import com.zzyl.vo.ThingModelPublishedVo;

import java.util.List;

public interface DeviceService {
    void syncProductList();

    List<ProductVo> allProduct();

    void registerDevice(DeviceDto dto);

    PageResponse<DeviceVo> pageQuery(DevicePageQueryDto dto);


    DeviceVo queryDeviceDetail(QueryDeviceDetailDto dto);

    ThingModelPublishedVo queryThingModelPublished(QueryThingModelPublishedDto dto);

    void updateDevice(UpdateDeviceDto dto);

    void deleteDevice(DeleteDeviceDto dto);


    DevicePropertyStatusVo queryDevicePropertyStatus(GivenDevicePhysicalModelDto dto);

    Device queryByIotId(String iotId);
}
